package com.sgb.kjwl.api.service;

import com.sgb.kjwl.model.entity.AddShoppingCar;
import com.sgb.kjwl.model.entity.ShoppingCarRequest;
import com.sgb.kjwl.model.entity.request.CheckGoodsOrderEntity;
import com.sgb.kjwl.model.entity.request.CheckGoodsOrderResultEntity;
import com.sgb.kjwl.model.entity.request.SubmitGoodsOrderEntity;
import com.sgb.kjwl.model.entity.shopping.PurchasingTypeEntity;
import com.sgb.kjwl.model.entity.shopping.ShoppingCarResponse;
import com.sgb.kjwl.model.entity.user.OrderListEntity;
import com.sgb.kjwl.model.entity.user.UserAddressEntity;
import com.sgb.link.entity.InvoiceManagementEntity;
import com.swgk.core.base.model.entity.BaseEntity;
import com.swgk.core.base.model.entity.ListResponse;

import java.util.List;
import java.util.Map;

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;

public interface ShoppingCarNewOrderAPI {

    // "page":"",//页码
// "limit":"",//分页条数
// "type":"",//1采购订单 2销售订单@Body Map map
// "orderState":""//订单状态（待接单 0  待签收 10 待支付 101 待发货102 已发货103  已完成7 已取消 8 ）待接单 0  待签收 10 待支付 101 待发货102 已发货103  已完成7 已取消 8 ）
    @GET("v1/app/user/order/list")
    Call<BaseEntity<ListResponse<List<OrderListEntity>>>> getOrdersList(@Query("orderProcessState") String orderProcessState, @Query("page") int page, @Query("limit") int limit, @Query("type") String type, @Query("orderState") String orderState);

    @POST("v1/app/user/order/simpleList")
    Call<BaseEntity<ListResponse<List<OrderListEntity>>>> getOrdersSimpleList(@Body Map map);

    @GET("v1/app/user/order/checkApprovalConfig")
    Call<BaseEntity<String>> getApprovalConfig(@Query("type") String type, @Query("companyNo") String companyNo);

    // 收货地址-收货地址列表信息
    @POST("v1/app/user/address")
    Call<BaseEntity<ListResponse<List<UserAddressEntity>>>> getUserAddressList();

    //加入购物车
    @POST("v1/app/user/new/cart/addCart")
    Call<BaseEntity> addShoppingCar(@Body AddShoppingCar addShoppingCar);

    /***
     *  新加入购物车
     */
    @POST("v1/app/user/new/cart/addCart")
    Call<BaseEntity> addShoppingCar(@Body ShoppingCarRequest addShoppingCar);

    /***
     * 提交订单校验
     * @return list 商品列表数据
     */
    @POST("v1/app/user/new/cart/checkCartItemOrder")
    Call<BaseEntity<List<CheckGoodsOrderResultEntity>>> getCheckCartItemOrder(@Body List<CheckGoodsOrderEntity> list);

    /***
     * 根据用户id删除清空购物车无效商品
     * @param
     * @return
     */
    @POST("v1/app/user/new/cart/deleteInvalidItemByUserId")
    Call<BaseEntity> deleteInvalidationShoppingCar();

    /***
     * 根据Userid获取购物车数量
     * @return
     */
    @GET("v1/app/user/new/cart/getCartCount")
    Call<BaseEntity<Integer>> getCarCount();

    /***
     * 获取购物车列表
     * @param
     * @return
     */
    @POST("v1/app/user/new/cart/getCartList")
    Call<BaseEntity<List<ShoppingCarResponse>>> getShoppingCarEntity();

    /***
     * 获取发票信息
     * @return
     */
    @POST("v1/app/user/new/cart/getCompanyByUser")
    Call<BaseEntity<List<InvoiceManagementEntity>>> getInvoiceInfoByUser();

    /***
     * 获取订单采购/收货/装车/卸车/物流选择信息
     * @return
     */
    @POST("v1/app/user/new/cart/getPurchasingMethod")
    Call<BaseEntity<PurchasingTypeEntity>> getPurchasingMethod();

    /***
     * 根据购物车的id更新商品数量
     */
    @POST("v1/app/user/new/cart/updateCart")
    Call<BaseEntity<Boolean>> getCarCount(@Body Map map);

    /***
     * 提交订单
     */
    @POST("v1/app/user/order/saveOrder")
    Call<BaseEntity> saveOrder(@Body SubmitGoodsOrderEntity list);

    /***
     * 根据购物车id 删除购物车商品
     * @param ids
     * @return
     */
    @POST("v1/app/user/new/cart/deleteByids")
    Call<BaseEntity> deleteShoppingCar(@Body List<String> ids);

}
